/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 *																					 *
 * Copyright (c) 2003-2006 by AG-Software										     * 
 * All Rights Reserved.																 *
 *																					 *
 * You should have received a copy of the AG-Software Shared Source License			 *
 * along with this library; if not, email gnauck@ag-software.de to request a copy.   *
 *																					 *
 * For general enquiries, email gnauck@ag-software.de or visit our website at:		 *
 * http://www.ag-software.de														 *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

using System;

namespace agsXMPP.protocol.x.muc
{
    public enum StatusCode
    {
        Unknown = -1,

        //<statuscode>
        //  <number>100</number>
        //  <stanza>message</stanza>
        //  <context>Entering a room</context>
        //  <purpose>Inform user that any occupant is allowed to see the user's full JID</purpose>
        //</statuscode>        
        
        /// <summary>
        /// Inform user that any occupant is allowed to see the user's full JID
        /// <remarks>used with message stanza</remarks>
        /// </summary>
        FullJidVisible = 100,
        
        //<statuscode>
        //  <number>101</number>
        //  <stanza>message (out of band)</stanza>
        //  <context>Affiliation change</context>
        //  <purpose>Inform user that his or her affiliation changed while not in the room</purpose>
        //</statuscode>        
        
        /// <summary>
        /// Affiliation change.
        //  Inform user that his or her affiliation changed while not in the room.
        /// <remarks>used with message stanza</remarks>
        /// </summary>
        AffiliationChanged = 101,

        //<statuscode>
        //  <number>102</number>
        //  <stanza>message</stanza>
        //  <context>Configuration change</context>
        //  <purpose>Inform occupants that room now shows unavailable members</purpose>
        //</statuscode>
        
        /// <summary>        
        /// Inform occupants that room now shows unavailable members.
        /// <remarks>used with message stanza</remarks>
        /// </summary>
        ShowUnavailableMembers = 102,

        //<statuscode>
        //  <number>103</number>
        //  <stanza>message</stanza>
        //  <context>Configuration change</context>
        //  <purpose>Inform occupants that room now does not show unavailable members</purpose>
        //</statuscode>
        
        /// <remarks>used with message stanza</remarks>/// <summary>
        /// Inform occupants that room now does not show unavailable members
        /// <remarks>used with message stanza</remarks>
        /// </summary>
        HideUnavailableMembers = 103,

        //<statuscode>
        //  <number>104</number>
        //  <stanza>message</stanza>
        //  <context>Configuration change</context>
        //  <purpose>Inform occupants that some room configuration has changed</purpose>
        //</statuscode>        
        
        /// <summary>
        /// Inform occupants that some room configuration has changed
        /// <remarks>used with message stanza</remarks>
        /// </summary>
        ConfigurationChanged = 104,

        //<statuscode>
        //  <number>201</number>
        //  <stanza>presence</stanza>
        //  <context>Entering a room</context>
        //  <purpose>Inform user that a new room has been created</purpose>
        //</statuscode>
        
        /// <summary>
        /// Inform user that a new room has been created
        /// <remarks>used with presence staza</remarks>
        /// </summary>
        RoomCreated = 201,

        //<statuscode>
        //  <number>301</number>
        //  <stanza>presence</stanza>
        //  <context>Removal from room</context>
        //  <purpose>Inform user that he or she has been banned from the room</purpose>
        //</statuscode>
        
        /// <summary>
        /// Inform user that he or she has been banned from the room
        /// <remarks>used with presence stanza</remarks>
        /// </summary>
        Banned  = 301,
        
        //<statuscode>
        //  <number>303</number>
        //  <stanza>presence</stanza>
        //  <context>Exiting a room</context>
        //  <purpose>Inform all occupants of new room nickname</purpose>
        //</statuscode>
        
        /// <summary>
        /// Inform all occupants of new room nickname
        /// <remarks>used with presence stanza</remarks>
        /// </summary>
        NewNickname = 303,
        
        //<statuscode>
        //  <number>307</number>
        //  <stanza>presence</stanza>
        //  <context>Removal from room</context>
        //  <purpose>Inform user that he or she has been kicked from the room</purpose>
        //</statuscode>
        
        /// <summary>
        /// Inform user that he or she has been kicked from the room
        /// <remarks>used with presence stanza</remarks>
        /// </summary>
        Kicked  = 307,
        
        //<statuscode>
        //  <number>321</number>
        //  <stanza>presence</stanza>
        //  <context>Removal from room</context>
        //  <purpose>Inform user that he or she is being removed from the room because of an affiliation change</purpose>
        //</statuscode>        
        
        /// <summary>
        /// Inform user that he or she is being removed from the room because of an affiliation change
        /// <remarks>used with presence stanza</remarks>
        /// </summary>
        AffiliationChange = 321,
        
        //<statuscode>
        //  <number>322</number>
        //  <stanza>presence</stanza>
        //  <context>Removal from room</context>
        //  <purpose>Inform user that he or she is being removed from the room 
        //    because the room has been changed to members-only and the user 
        //    is not a member</purpose>
        //</statuscode>
        
        /// <summary>
        /// Inform user that he or she is being removed from the room because the room has been changed 
        /// to members-only and the user is not a member
        /// <remarks>used with presence stanza</remarks>
        /// </summary>
        MembersOnly = 322,

        //<statuscode>
        //  <number>332</number>
        //  <stanza>presence</stanza>
        //  <context>Removal from room</context>
        //  <purpose>Inform user that he or she is being removed from the room 
        //    because of a system shutdown</purpose>
        //</statuscode>        
        
        /// <summary>
        /// Inform user that he or she is being removed from the room because of a system shutdown
        /// <remarks>used with presence stanza</remarks>
        /// </summary>        
        Shutdown = 332
    }
}
